///******************************************************************************* // * Copyright (c) 2000, 2006 IBM Corporation and others. // * All rights reserved. This program and the accompanying materials // * are made available under the terms of the Eclipse Public License v1.0 // * which accompanies this distribution, and is available at // * http://www.eclipse.org/legal/epl-v10.html // * // * Contributors: // * IBM Corporation - initial API and implementation // *******************************************************************************/ //package org.eclipse.ui.tests.datatransfer; // //import java.io.IOException; //import java.io.InputStream; //import java.net.URL; //import java.util.ArrayList; //import java.util.Enumeration; //import java.util.List; //import java.util.Properties; //import java.util.zip.ZipEntry; //import java.util.zip.ZipFile; // //import org.eclipse.core.resources.IContainer; //import org.eclipse.core.resources.IFile; //import org.eclipse.core.resources.IProject; //import org.eclipse.core.resources.IResource; //import org.eclipse.core.runtime.CoreException; //import org.eclipse.core.runtime.IPath; //import org.eclipse.core.runtime.IStatus; //import org.eclipse.core.runtime.Path; //import org.eclipse.core.runtime.Platform; //import org.eclipse.ui.dialogs.IOverwriteQuery; //import org.eclipse.ui.internal.wizards.datatransfer.TarFile; //import org.eclipse.ui.internal.wizards.datatransfer.TarLeveledStructureProvider; //import org.eclipse.ui.internal.wizards.datatransfer.ZipLeveledStructureProvider; //import org.eclipse.ui.tests.TestPlugin; //import org.eclipse.ui.tests.harness.util.FileUtil; //import org.eclipse.ui.tests.harness.util.UITestCase; //import org.eclipse.ui.wizards.datatransfer.ImportOperation; // //public class ImportArchiveOperationTest extends UITestCase implements IOverwriteQuery { // private static final String DATA_PATH_PREFIX = "data/org.eclipse.datatransferArchives/"; // // private static final String ARCHIVE_SOURCE_PROPERTY = "archiveSource"; // // private static final String ARCHIVE_115800_PROPERTY = "bug115800Source"; // // private static final String rootResourceName = "test.txt"; // // private static final String[] directoryNames = { "dir1", "dir2" }; // // private static final String[] fileNames = { "file1.txt", "file2.txt" }; // // private String localDirectory; // // private IProject project; // // private URL zipFileURL; // // private URL tarFileURL; // // public ImportArchiveOperationTest(String testName) { // super(testName); // } // // /* // * @see IOverwriteQuery#queryOverwrite(String) // */ // public String queryOverwrite(String pathString) { // //Always return an empty String - we aren't // //doing anything interesting // return ""; // } // // /** // * Tear down. Delete the project we created and all of the // * files on the file system. // */ // protected void doTearDown() throws Exception { // super.doTearDown(); // try { // project.delete(true, true, null); // } catch (CoreException e) { // fail(e.toString()); // } // finally{ // localDirectory = null; // project = null; // zipFileURL = null; // tarFileURL = null; // } // } // // private void setup(String propertyName) throws Exception{ // Class testClass = Class // .forName("org.eclipse.ui.tests.datatransfer.ImportArchiveOperationTest"); // InputStream stream = testClass.getResourceAsStream("tests.ini"); // Properties properties = new Properties(); // properties.load(stream); // String zipFileName = properties.getProperty(propertyName); // localDirectory = zipFileName; // // zipFileURL = Platform.asLocalURL(Platform.find(TestPlugin.getDefault().getBundle(), // new Path(DATA_PATH_PREFIX).append(zipFileName+ ".zip"))); // tarFileURL = Platform.asLocalURL(Platform.find(TestPlugin.getDefault().getBundle(), // new Path(DATA_PATH_PREFIX).append(zipFileName+ ".tar"))); // } // // public void testZipGetStatus() throws Exception { // setup(ARCHIVE_SOURCE_PROPERTY); // project = FileUtil.createProject("ImportZipGetStatus"); // ZipFile zipFile = new ZipFile(zipFileURL.getPath()); // // ZipLeveledStructureProvider structureProvider = new ZipLeveledStructureProvider(zipFile); // // Enumeration zipEntries = zipFile.entries(); // List entries = new ArrayList(); // while (zipEntries.hasMoreElements()){ // entries.add(zipEntries.nextElement()); // } // ImportOperation operation = new ImportOperation( // new Path(zipFileURL.getPath()), structureProvider.getRoot(), // structureProvider, this, entries); // // closeZipFile(zipFile); // assertTrue(operation.getStatus().getCode() == IStatus.OK); // } // // public void testTarGetStatus() throws Exception { // setup(ARCHIVE_SOURCE_PROPERTY); // project = FileUtil.createProject("ImportTarGetStatus"); // TarFile tarFile = new TarFile(tarFileURL.getPath()); // TarLeveledStructureProvider structureProvider = new TarLeveledStructureProvider(tarFile); // // Enumeration tarEntries = tarFile.entries(); // List entries = new ArrayList(); // while (tarEntries.hasMoreElements()){ // entries.add(tarEntries.nextElement()); // } // ImportOperation operation = new ImportOperation( // new Path(tarFileURL.getPath()), structureProvider.getRoot(), // structureProvider, this, entries); // // assertTrue(operation.getStatus().getCode() == IStatus.OK); // } // // public void testZipImport() throws Exception { // setup(ARCHIVE_SOURCE_PROPERTY); // project = FileUtil.createProject("ImportZip"); // ZipFile zipFile = new ZipFile(zipFileURL.getPath()); // ZipLeveledStructureProvider structureProvider = new ZipLeveledStructureProvider(zipFile); // zipFile = new ZipFile(zipFileURL.getPath()); // Enumeration zipEntries = zipFile.entries(); // List entries = new ArrayList(); // while (zipEntries.hasMoreElements()){ // ZipEntry entry = (ZipEntry)zipEntries.nextElement(); // if (!entry.isDirectory()) // entries.add(entry); // } // ImportOperation operation = new ImportOperation( // new Path(project.getName()), structureProvider.getRoot(), // structureProvider, this, entries); // // openTestWindow().run(true, true, operation); // closeZipFile(zipFile); // // verifyFiles(directoryNames.length, false); // } // // // public void testTarImport() throws Exception { // setup(ARCHIVE_SOURCE_PROPERTY); // project = FileUtil.createProject("ImportTar"); // TarFile tarFile = new TarFile(tarFileURL.getPath()); // TarLeveledStructureProvider structureProvider = new TarLeveledStructureProvider(tarFile); // // Enumeration tarEntries = tarFile.entries(); // List entries = new ArrayList(); // while (tarEntries.hasMoreElements()){ // entries.add(tarEntries.nextElement()); // } // ImportOperation operation = new ImportOperation( // new Path(project.getName()), structureProvider.getRoot(), // structureProvider, this, entries); // // openTestWindow().run(true, true, operation); // // verifyFiles(directoryNames.length, false); // } // // public void testTarSetOverwriteResources() throws Exception { // setup(ARCHIVE_SOURCE_PROPERTY); // project = FileUtil.createProject("ImportTarSetOverwriteResources"); // TarFile tarFile = new TarFile(tarFileURL.getPath()); // TarLeveledStructureProvider structureProvider = new TarLeveledStructureProvider(tarFile); // // Enumeration tarEntries = tarFile.entries(); // List entries = new ArrayList(); // while (tarEntries.hasMoreElements()){ // entries.add(tarEntries.nextElement()); // } // ImportOperation operation = new ImportOperation( // new Path(project.getName()), structureProvider.getRoot(), // structureProvider, this, entries); // // openTestWindow().run(true, true, operation); // operation.setOverwriteResources(true); // openTestWindow().run(true, true, operation); // verifyFiles(directoryNames.length, false); // } // // public void testZipSetOverwriteResources() throws Exception { // setup(ARCHIVE_SOURCE_PROPERTY); // project = FileUtil.createProject("ImporZiprSetOverwriteResources"); // ZipFile zipFile = new ZipFile(zipFileURL.getPath()); // ZipLeveledStructureProvider structureProvider = new ZipLeveledStructureProvider(zipFile); // zipFile = new ZipFile(zipFileURL.getPath()); // Enumeration zipEntries = zipFile.entries(); // List entries = new ArrayList(); // while (zipEntries.hasMoreElements()){ // ZipEntry entry = (ZipEntry)zipEntries.nextElement(); // if (!entry.isDirectory()) // entries.add(entry); // } // ImportOperation operation = new ImportOperation( // new Path(project.getName()), structureProvider.getRoot(), // structureProvider, this, entries); // // openTestWindow().run(true, true, operation); // operation.setOverwriteResources(true); // openTestWindow().run(true, true, operation); // closeZipFile(zipFile); // verifyFiles(directoryNames.length, false); // } // // public void testZipWithFileAtRoot() throws Exception { // setup(ARCHIVE_115800_PROPERTY); // project = FileUtil.createProject("ImportZipWithFileAtRoot"); // ZipFile zipFile = new ZipFile(zipFileURL.getPath()); // ZipLeveledStructureProvider structureProvider = new ZipLeveledStructureProvider(zipFile); // zipFile = new ZipFile(zipFileURL.getPath()); // Enumeration zipEntries = zipFile.entries(); // List entries = new ArrayList(); // while (zipEntries.hasMoreElements()){ // ZipEntry entry = (ZipEntry)zipEntries.nextElement(); // if (!entry.isDirectory()) // entries.add(entry); // } // ImportOperation operation = new ImportOperation( // new Path(project.getName()), structureProvider.getRoot(), // structureProvider, this, entries); // // openTestWindow().run(true, true, operation); // closeZipFile(zipFile); // // verifyFiles(directoryNames.length, true); // } // // // public void testTarWithFileAtRoot() throws Exception { // setup(ARCHIVE_115800_PROPERTY); // project = FileUtil.createProject("ImportTarWithFileAtRoot"); // TarFile tarFile = new TarFile(tarFileURL.getPath()); // TarLeveledStructureProvider structureProvider = new TarLeveledStructureProvider(tarFile); // // Enumeration tarEntries = tarFile.entries(); // List entries = new ArrayList(); // while (tarEntries.hasMoreElements()){ // entries.add(tarEntries.nextElement()); // } // ImportOperation operation = new ImportOperation( // new Path(project.getName()), structureProvider.getRoot(), // structureProvider, this, entries); // // openTestWindow().run(true, true, operation); // // verifyFiles(directoryNames.length, true); // // } // // /** // * Verifies that all files were imported. // * // * @param folderCount number of folders that were imported // */ // private void verifyFiles(int folderCount, boolean hasRootMembers) { // try { // IPath path = new Path(localDirectory); // IResource targetFolder = project.findMember(path.makeRelative()); // // assertTrue("Import failed", targetFolder instanceof IContainer); // // IResource[] resources = ((IContainer) targetFolder).members(); // if (!hasRootMembers){ // assertEquals("Import failed to import all directories", // folderCount, resources.length); // for (int i = 0; i < resources.length; i++) { // assertTrue("Import failed", resources[i] instanceof IContainer); // verifyFolder((IContainer) resources[i]); // } // } // else { // for (int i = 0; i < resources.length; i++){ // if (resources[i] instanceof IContainer) // verifyFolder((IContainer)resources[i]); // else // assertTrue("Root resource is not present or is not present as a file: " + rootResourceName, // resources[i] instanceof IFile && rootResourceName.equals(resources[i].getName())); // } // } // // } catch (CoreException e) { // fail(e.toString()); // } // } // // /** // * Verifies that all files were imported into the specified folder. // */ // private void verifyFolder(IContainer folder) { // try { // IResource[] files = folder.members(); // assertEquals("Import failed to import all files", fileNames.length, // files.length); // for (int j = 0; j < fileNames.length; j++) { // String fileName = fileNames[j]; // int k; // for (k = 0; k < files.length; k++) { // if (fileName.equals(files[k].getName())) // break; // } // assertTrue("Import failed to import file " + fileName, // k < fileNames.length); // } // } catch (CoreException e) { // fail(e.toString()); // } // } // // private boolean closeZipFile(ZipFile zipFile){ // try{ // zipFile.close(); // } // catch(IOException e){ // fail("Could not close zip file " + zipFile.getName(), e); // return false; // } // return true; // } //}